home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / man / gemo.man < prev    next >
Text File  |  1993-08-26  |  8KB  |  207 lines

  1.                      GEM++ - C++ LIBRARIES FOR GEM/AES/VDI
  2.  
  3.  
  4.  
  5. NAME
  6.      GEMobject - Extensible objects in forms.
  7.  
  8. DESCRIPTION
  9.      The standard GEM OBJECTs (defined in gemfast.h of the standard C
  10.      library) that are used in C are a fixed structure that can be
  11.      extended in various ways - extended types, indirect object-specific
  12.      data, and user defined object types.
  13.  
  14.      A GEMobject is implemented using the indirect object-specific
  15.      data, and uses two bits of the extended type, but is a fully
  16.      extensible C++ object - you can use derived classes to
  17.      implement any extensions possible with plain C OBJECTs, plus
  18.      any other features you devise, and all of your objects will
  19.      be fully compatible with any objects created by other people
  20.      using GEM++.
  21.  
  22.      A GEMobject is also tightly coupled to the GEMform, since the
  23.      GEMform is composed of GEMrawobjects and each GEMrawobject may
  24.      have a GEMobject declared to be attached to it.  The GEMobject
  25.      receives call-backs through its Touch() method from the GEMform.
  26.      This makes a GEMobject an active part of an application rather
  27.      than just a block of data.  See the Cook() member of GEMrawobject.
  28.  
  29.      GEMobjects make GEM truly object-oriented.
  30.  
  31. CONSTRUCTORS
  32.      GEMobject(GEMform&, int RSCindex)
  33.        Create a GEMobject that is a component of the given GEMform,
  34.        controlling the object in that form specified by the given
  35.        RSC index.
  36.  
  37. METHODS
  38.      virtual GEMfeedback Touch(int x, int y, const GEMevent& e)
  39.        Call-back method.  This method is called when the object is
  40.        manipulated by the user as part of a GEMform (or GEMformwindow,
  41.        or GEMmenu, or GEMdesktop, etc).  (x,y) is the relative
  42.        position of the click - (0,0) is the top-left corner of the
  43.        object.  The absolute position is available in the provided
  44.        GEMevent, as is information as to which mouse button was
  45.        used, how many clicks occurred, and which meta-keys where
  46.        being pressed when the object was manipulated.  By default,
  47.        this method simply returns EndInteraction.  This is the
  48.        primary method for extensibility.
  49.  
  50.      bool Selected(bool s); bool Selected(); void Select();  void Deselect()
  51.      bool Crossed(bool s);  bool Crossed();  void Cross();   void Uncross()
  52.      bool Checked(bool s);  bool Checked();  void Check();   void Uncheck()
  53.      bool Disabled(bool s); bool Disabled(); void Disable(); void Enable()
  54.      bool Outlined(bool s); bool Outlined(); void Outline(); void Unoutline()
  55.      bool Shadowed(bool s); bool Shadowed(); void Shadow();  void Unshadow()
  56.        These methods test-and-set / test / set / reset the various
  57.        states of the object respectively.  They do not cause redraw.
  58.  
  59.      bool Selectable(bool f);  bool Selectable()
  60.      bool Default(bool f);     bool Default()
  61.      bool Exit(bool f);        bool Exit()
  62.      bool Editable(bool f);    bool Editable()
  63.      bool RadioButton(bool f); bool RadioButton()
  64.      bool LastObject(bool f);  bool LastObject()
  65.      bool TouchExit(bool f);   bool TouchExit()
  66.      bool HideTree(bool f);    bool HideTree()
  67.        These methods test-and-set / test the various flags of the object.
  68.        These flags do not effect the visual representation of an object,
  69.        so redraw is not required.
  70.  
  71.      short States()
  72.      short Flags()
  73.        These methods return the current state and flags respectively.
  74.  
  75.      bool ContainsPoint(int x, int y)
  76.        True iff the given point is within the absolute area of the
  77.        object.
  78.  
  79.      void MoveTo(short x, short y)
  80.        Moves the object to the given position relative to the parent
  81.        of the object.
  82.  
  83.      void MoveBy(short x, short y)
  84.        Moves the object by the given amount.
  85.  
  86.      short X()
  87.      short Y()
  88.        Return the position of the object relative to the parent.
  89.  
  90.      void GetAbsoluteXY(int& x, int& y) const;
  91.        Return the absolute screen position of the object.
  92.  
  93.      short Width()
  94.      short Height()
  95.        Examine the size of the object, in pixels.
  96.  
  97.      void Resize(short w, short h)
  98.      virtual void SetWidth(short w)
  99.      virtual void SetHeight(short h)
  100.        Set the size of the object in pixels.
  101.  
  102.      virtual void Type(int)
  103.      virtual int Type()
  104.        Set or examine the object type (see gemfast.h)
  105.  
  106.      virtual int ObjectSpecific()
  107.      virtual void ObjectSpecific(int)
  108.        Set or examine the object-specific data (see gemfast.h)
  109.        Note that since GEMobjects use indirect object-specific data,
  110.        these methods are setting or examining the indirect data,
  111.        not the pointer to the data.
  112.  
  113.      char* ImageBitmap(bool Mask=FALSE)
  114.        Returns the bitmap data or mask of the object.  IMAGE type objects
  115.        have no mask.  ICON type objects have both.
  116.  
  117.      short ImageHeight()
  118.      short ImageWidth()
  119.        Return the size of the IMAGE or ICON graphic.
  120.  
  121.      void SetImageBitmap(char*, short w, short h, bool Mask=FALSE)
  122.        Sets the data or mask of the object to be the given area of
  123.        memory, with the given pixel width and height.
  124.  
  125.      char* Text()
  126.        Returns the text of the object.  For STRING type objects, this
  127.        is the text of the string.  For TEXT objects, it is the text.
  128.        For FTEXT objects, it is the user-input text. For CHAR objects,
  129.        a pointer to that char is returns.  Note that this methods
  130.        returns a pointer to the actual string, which may then be
  131.        modified in-place, etc. note also that the "CHAR" object
  132.        "string" is not NUL terminated (since it is a single character).
  133.  
  134.      void SetText(char*)
  135.        Sets the text of an object, as above.  Note that this sets
  136.        the pointer in the object to the given pointer, except for
  137.        the ICON type, where the first character of the given string
  138.        is copied.
  139.  
  140.      int FillPattern()
  141.        Returns the fill pattern of the object.
  142.  
  143.      int Font()
  144.      void Font(int font)
  145.        Set/get the font for the object.  The value returned is as
  146.        defined in gemfast.h (IBM or SMALL).
  147.  
  148.      int ForeCol()
  149.      void ForeCol(int colourindex)
  150.      int BackCol()
  151.      void BackCol(int colourindex)
  152.        Set/get the foreground or background colours of the object.
  153.  
  154.      void Redraw()
  155.      void RedrawParent()
  156.        Redraw the object (or its parent).  Note that for transparent
  157.        objects, the parent must be redraw in order for the display
  158.        to be correct.
  159.  
  160.      void Detach()
  161.        Remove from parent child-list
  162.      void Attach(GEMobject& o)
  163.        Attach child to self, by object.
  164.      void Attach(int RSCindex)
  165.        Attach child to self, by index.
  166.  
  167.      int NumberOfChildren()
  168.        Returns the number of children of the object, including those
  169.        that are- and are-not GEMobjects.
  170.      int FirstChild()
  171.        Returns the index of the first child, or -1 if none.
  172.      int NextChild(int after)
  173.        Returns the child after the given child.
  174.      GEMrawobject* Child(int)
  175.        Returns the given child as a pointer to a GEMrawobject.
  176.      int Index()
  177.        Returns the index of the object.
  178.  
  179.      int NumberOfComponents()
  180.        Returns the number of GEMobjects that are children of the object.
  181.      GEMobject* FirstComponent()
  182.        Returns the first GEMobject that is a child of the object, or NULL.
  183.      GEMobject* NextComponent(const GEMobject*)
  184.        Returns the next GEMobject after the given child object, or NULL.
  185.  
  186. SEE ALSO
  187.      GEMrawobject, GEMform,
  188.      GEMimageobject, GEMtextobject, GEMuserobject, GEMvdiobject, GEMslider
  189.  
  190. BUGS
  191.      Bugs in GEM++ should be reported to warwick@cs.uq.oz.au
  192.  
  193. AUTHOR
  194.      Warwick Allison, 1993.
  195.      warwick@cs.uq.oz.au
  196.  
  197. COPYING
  198.      This functionality is part of the GEM++ library,
  199.      and is Copyright 1993 by Warwick W. Allison.
  200.  
  201.      GEM++ is free and protected under the GNU Library General Public
  202.      License.
  203.  
  204.      You are free to copy and modify these sources, provided you
  205.      acknowledge the origin by retaining this notice, and adhere to
  206.      the conditions described in the GNU LGPL.
  207.